package com.xjh.basestudy.designmode.structureMode.structureMode3_Decorator.p2_shelfDecorator;

import com.xjh.basestudy.designmode.structureMode.structureMode3_Decorator.p1_origin.Showable;

/**
 * @Author XuJianHua
 * @Date 2022/9/26 22:25
 * @Description
 * 粉底类不用去实现Showable接口了，而是继承了装饰器抽象类，如此父类中对被装饰者的定义得以继承，可以看到我们在第4行的构造方法中调用了父类的构造方法并注入被装饰者，这便是继承的优势所在。
 * 当然，这个粉底类的show()方法一定要加上自己特有的操作，如第9行至第11行所示，我们在调用被装饰者的show()方法前后都进行了打粉底操作。化妆尚未结束，打完粉底再涂个口红吧

 */
public class FoundationMakeup extends Decorator{

    public FoundationMakeup(Showable showable) {
        super(showable);//调用抽象父类的构造注入
    }

    @Override
    public void show() {
        System.out.print("打粉底【");
        showable.show();
        System.out.print("】");
    }
}